<?php
//https://github.com/phpredis/phpredis
$redis=new Redis();
//var_export(class_exists('Redis'));
$redis->connect(
    '127.0.0.1',
    6379
);
//使用内置的系列化/非系列化,可以存数组
//$redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_PHP);

//第0个数据库
$redis->select(0);

//$redis->set('qq','www.baidu.com');

//设置10秒后删除
//$str=$redis->set('qq','www.baidu.com',10);
//var_export($str);

//设置项目的过期日期(超时)
//$redis->expire('qq',20);

//返回给定键的剩余生存时间
//echo $redis->ttl('qq');//输出20

//$redis->get('qq')读取
//echo $redis->get('qq');//www.baidu.com

//存数组
/*$redis->set('array',array(1,2,3,4));
$array=$redis->get('array');
var_export($array);//array ( 0 => 1, 1 => 2, 2 => 3, 3 => 4, )*/


//如果数据库中不存在键，则将参数中的字符串值设置为键的值。不存在对应的key时可以设置
//$str=$redis->setnx('array',1);
//var_export($str);//false

//删除指定的键。返回值被删除 key 的数量。
//$bool=$redis->del('array','qq');//删除array和qq
//var_export($bool);

//将一个或多个值插入到列表头部返回值列表的长度。
//$bool=$redis->lPush('list',1,2,3,4,5);
//var_export($bool);
//用于将一个或多个值插入到列表的尾部(最右边)。
//$redis->rPush('');

//取列表的第一个元素并删除,返回值为移除的元素。
//echo $redis->lPop('list');

//取列表的最后一个元素并删除，返回值为移除的元素。
//echo $redis->rPop('list');


//Hset 命令用于为哈希表中的字段赋值 。
//为h或t表中的字段赋值。成功返回1，失败返回0。若h表不存在会先创建表再赋值，若字段已存在会覆盖旧值。
/*$redis->hSet('h','php',1);
$redis->hSet('h','java',2);
$redis->hSet('t','php',3);*/


//Hget 命令用于返回哈希表中指定字段的值。
//获取h表中指定字段的值。若h表不存在则返回false。
echo $redis->hGet('h','php');
echo "<br/>";
echo $redis->hGet('t','php');

//Hgetall 命令用于返回哈希表中，所有的字段和值。
//获取某个h表所有的字段和值。
var_export($redis->hGetAll('h'));

//Hdel 命令用于删除哈希表 key 中的一个或多个指定字段，不存在的字段将被忽略。
$redis->hDel('h','php','java');



$redis->close();//关闭redis

